In computing, network virtualization is a method used to combine hardware and software network resources and network functionality into a single, software based administrative platform, known as a virtual network. Network virtualization is achieved through software and services that allow the sharing of storage, bandwidth, applications, and other network resources. The technology utilizes a method similar to the virtualization process used to simulate virtual machines within physical computers (i.e., server virtualization). A virtual network treats all hardware and software in the network as a single collection of resources, which can be accessed regardless of physical boundaries. In simple terms, network virtualization allows each authorized user to share network resources from a single computer.
Network virtualization facilitates customization and ease of network use. Virtualization can provide customized access that allows administrators to allocate critical network services, such as bandwidth throttling and quality of service (QoS). It can also provide consolidation by allowing a multitude of physical networks to be combined into a single virtual network, allowing for streamlined and simplified management.
Packet I/O is a software mechanism used by switching and routing protocols for sending and receiving control traffic, as well as a plurality of utilities and network diagnostics. Packet I/O provides protocol services and other applications, such as ping, traceroute, etc., with a consistent and efficient mechanism for reliable packet transmission and delivery. All routing protocols rely on packet I/O infrastructure for building network state, as well as for propagating updates to their peers in the network.